error tolerant approach